{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Compare lithium-ion battery models"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We compare three one-dimensional lithium-ion battery models: [the Doyle-Fuller-Newman (DFN) model](./DFN.ipynb), [the single particle model (SPM)](./SPM.ipynb), and [the single particle model with electrolyte (SPMe)](./SPMe.ipynb). Further details on these models can be found in [[4]](#References).\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Key steps:\n",
    "\n",
    "Comparing models consists of 6 easy steps:\n",
    "\n",
    " 1. Load models and geometry\n",
    " 2. Process parameters\n",
    " 3. Mesh the geometry\n",
    " 4. Discretise models \n",
    " 5. Solve models\n",
    " 6. Plot results \n",
    "\n",
    "But, as always we first import pybamm and other required modules"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[33mWARNING: You are using pip version 22.0.4; however, version 22.3.1 is available.\n",
      "You should consider upgrading via the '/home/mrobins/git/PyBaMM/env/bin/python -m pip install --upgrade pip' command.\u001b[0m\u001b[33m\n",
      "\u001b[0mNote: you may need to restart the kernel to use updated packages.\n"
     ]
    }
   ],
   "source": [
    "%pip install \"pybamm[plot,cite]\" -q    # install PyBaMM if it is not installed\n",
    "import os\n",
    "\n",
    "import pybamm\n",
    "\n",
    "os.chdir(pybamm.__path__[0] + \"/..\")\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. Load models"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Since the three models we want to compare are already implemented in PyBaMM, they can be easy loaded using: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "dfn = pybamm.lithium_ion.DFN()\n",
    "spme = pybamm.lithium_ion.SPMe()\n",
    "spm = pybamm.lithium_ion.SPM()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To allow us to perform the same operations on each model easily, we create a dictionary of these three models:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "models = {\"DFN\": dfn, \"SPM\": spm, \"SPMe\": spme}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Each model can then be accessed using:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<pybamm.models.full_battery_models.lithium_ion.dfn.DFN at 0x7f917c709f40>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "models[\"DFN\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For each model, we must also provide a cell geometry. The geometry is different for different models; for example, the SPM has solves for a single particle in each electrode whereas the DFN solves for many particles. For simplicity, we use the default geometry associated with each model but note that this can be easily changed."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "geometry = {\n",
    "    \"DFN\": dfn.default_geometry,\n",
    "    \"SPM\": spm.default_geometry,\n",
    "    \"SPMe\": spme.default_geometry,\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. Process parameters"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For simplicity, we use the default parameters values associated with the DFN model, but change the current function to be an input so that we can quickly solve the model with different currents"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "param = dfn.default_parameter_values\n",
    "param[\"Current function [A]\"] = \"[input]\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It is simple to change this to a different parameter set if desired. \n",
    "\n",
    "We then process the parameters in each of the models and geometries using this parameter set:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "for model_name in models.keys():\n",
    "    param.process_model(models[model_name])\n",
    "    param.process_geometry(geometry[model_name])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. Mesh geometry"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We use the defaults mesh properties (the types of meshes and number of points to be used) for simplicity to generate a mesh of each model geometry. We store these meshes in a dictionary of similar structure to the geometry and models dictionaries:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "mesh = {}\n",
    "for model_name, model in models.items():\n",
    "    mesh[model_name] = pybamm.Mesh(\n",
    "        geometry[model_name], model.default_submesh_types, model.default_var_pts\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4. Discretise model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We now discretise each model using its associated mesh and the default spatial method associated with the model:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "for model_name, model in models.items():\n",
    "    disc = pybamm.Discretisation(mesh[model_name], model.default_spatial_methods)\n",
    "    disc.process_model(model)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5. Solve model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We now solve each model using the default solver associated with each model:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Solved the Doyle-Fuller-Newman model in 266.815 ms\n",
      "Solved the Single Particle Model in 20.571 ms\n",
      "Solved the Single Particle Model with electrolyte in 38.459 ms\n"
     ]
    }
   ],
   "source": [
    "timer = pybamm.Timer()\n",
    "solutions = {}\n",
    "t_eval = [0, 3600]  # time in seconds\n",
    "for model_name, model in models.items():\n",
    "    solver = pybamm.IDAKLUSolver()\n",
    "    timer.reset()\n",
    "    solution = solver.solve(model, t_eval, inputs={\"Current function [A]\": 1})\n",
    "    print(f\"Solved the {model.name} in {timer.time()}\")\n",
    "    solutions[model_name] = solution"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 6. Plot results"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To plot results, we extract the variables from the solutions dictionary. Matplotlib can then be used to plot the voltage predictions of each models as follows:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Qx01apTasmVLFVB9fX3Vw4cPm8pevHhRtbW1Vf38/NTS0tJK1zh16pSqKIoaFRVVYXtISEiVddy8ebPq7u6uAmp0dLR69913q7169VKtrKxUrVarzp8/v6bfBlVVVXXcuHEqoM6cOfO6ZQE1JCSkyn0zZ85UAfXNN9+s8vxr166tsL13794qoCYmJlbYfvToUTUoKEgF1NDQUHX48OFq3759VQcHBxVQP/jggwrlExMTVUDt2rWrGhcXp7q7u6sjRoxQ7777bnXy5MnXfD9r165VAfX2229XVVVVO3bsqALq8uXLK5S78847q3wP58+fV2NjY1VA9fPzUwcNGqQOHDhQdXV1VQH1b3/7W4XyY8eOrfI85ecA1OPHj5u2GwwG1cvLS3V1dVV1Op1pe/nPxvPPP6/a29urgwYNUocMGaI6OzurgPrGG2+oGzduVB0cHNSOHTuq9913nxoZGakCakREhFpQUFDh+tOnTzf9PA0YMEC977771A4dOqiAam1tra5cubLS9668Di+//LJqY2Oj3nHHHepdd92l+vj4qIDaq1cv1WAwXPP7X6783zA+Pl7t1q2b6uPjo44cOVLt06ePqtFoVK1Wq65atUr96KOPVCsrK/X2229X77rrLtXT01MF1AcffLDSOffv3696eXmZ3teoUaPUW265RQVUKysrdcGCBZWOKf8+KIqi3nrrrer999+vhoSEqK6urupDDz1U5e9JbX8GrvzeiYZ14MIR9cDFA+qhiwmqmrJbVfPTVVWt+8/M2nx+V8esn574+HjVy8tLzcnJMW27OgydP39edXJyUvv162d25eqThKEbU9Mw9M4776iA+sADD5i2nTlzRrW3t1e1Wq26dOlS03a9Xq8+//zzKqB27ty5wnkefPBBFVCXLFlS6Rqvv/66Cqjvv/9+he1V/YeZnZ2t+vv7q1qtVp0zZ06FfTt27FDd3d1VJycn9cKFC9d9b+UaUxjS6XRqu3btVECdOnWqqtfrTfuOHz+uhoWFqVqtVk1ISDBtL/8gLf8wzczMvO77KHd1GPrll19MwepK1YWhQYMGqYD63HPPqUVFRabtaWlpaufOnSsFq2+//bbS9+jSpUuqoihqmzZtVECdMWOGad/+/ftVQB08eHCF65b/bAQEBKgnTpwwbT98+LBqa2urOjg4qKGhoer06dNN+4qLi9W+ffuqgPrtt99WON/+/fvVAwcOVPr+rFixQrWxsVEjIiIqBZvyOvj5+alHjhwxbb948aIpeK1evbrSOaty5b9h37591by8PNO+8p+ryMhI1d3dXd2xY4dpX0pKiil8nTx50rTdYDCYfo7+8Y9/VKj7okWLVI1Gozo5Oannzp0zbU9KSlLt7OxUa2trdcWKFabtJSUl6ujRo031u/r3pLY/A1d+70TDOnjhuHrg4gH1wMUDqj5lt6rmpKmq2jTCkFkdqMeMGcPTTz/NxIkTmTlzJjY2FTtI6fV6nn76aQoKCkyji5qToZ9t5GJucUNXo8a8nW1Z9kzPermWl5cXAJmZmaZtX3/9NYWFhTzwwAMMGzbMtF2j0fDee++xYMECdu7cyaZNm+jRowcAEydOZN68ecyYMYMRI0aYjtHr9cyaNQtra+sadV7+9ttvSU1N5e9//zujR4+usK9z587861//4sUXX2TOnDm88MILtXqvDz/8MA8//HCl7W+++aZFbn3VxLJly0hISOCee+7h5ZdfrrAvMjKSDz/8kLvvvpsZM2Ywbdq0Ssd/+umnuLm5mX39oUOH0rlzZ7Zv386vv/7KkCFDqi27d+9efv/9d7p06cJHH31UYVCGr68vX331FR07dmT69OkMGDAAwDR8/8oh+uvXr0dVVf7xj3/w+OOPs27dOh599NEK5Xr37l1lHd5++20iIiJMr1u1asWgQYNYsmQJLVq0YOLEiaZ9NjY2PPfcc6xZs4b169dX+Ldu165dlee/8847uffee5k7dy4HDhyosty///1voqOjTa+9vLyYOHEiL730En/99VetOqRrNBqmT59eoUvD2LFjefnllzlx4gT//Oc/6dy5s2lfQEAAo0eP5uOPP+avv/4iPDwcMH7fEhISCA4O5p133qkwjP2ee+5hxIgRLF68mG+//dY0YObbb7+lqKiIsWPHcuedd5rKW1tbM23aNJYsWUJBQUGF+przMyAaj8qzUDed22Q1CkPh4eHce++9vP/++wA8/vjjLFy4kB9++IHNmzebftD37dvHc889x6+//kpiYiJ33HFHpQ+Y5uBibjFpOUXXL9gMqWV9L678z3TDhg0AVf6s2Nracu+99zJt2jQ2bNhgCkO9evWiTZs2rFixguTkZFPfkN9//52UlBRGjhyJj4/Pdevzxx9/AHD33XdXub9Xr14AbN++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KE888QTvvPMObdu2xd3dnbS0NHbv3k1WVhZLliypkzD0yiuvsGjRIj755BPWrVtHREQECQkJJCcn89RTT/G///3vhs5vZWXFzz//zJ133skbb7zB559/TmxsLD4+PqSnp7N3714uXLjAxx9/XOdhCIytQ7fffnu1MxzPmTOHAQMG8L///Y958+YRFxdHQEAA2dnZ7N+/n+TkZJ577rlqw1BRUVGllp/yfkPl+6ysbrh3wDX5+PgwYcIEZsyYQfv27enbty/29vZs2LABvV7P+PHjLbJSe31SFIW5c+dy22238Z///IclS5YQFxfHmTNn2LRpE1ZWVnzzzTf4+/ubjgkLC+PDDz/kb3/7G3feeSe33norfn5+bN26lczMTEaPHs3cuXMrXcvcnwHR8C7PQq1WXJ+sCajx/woRERH18p+laNrKOxdbWVnh4uJCQEAAY8eOZfjw4QwbNqzajqtjxowhIiKC9957j82bN7Nt2zb8/f158sknef3116sdFQOY5l1p0aKFWf9Bdu/enYSEBD7++GN+++03Uwdhf39/evfuzV133WX6q9bS2rRpw5o1a5g0aRLbt2/n1KlT9OjRgwULFpg6m9+oqKgo9uzZw+eff87ixYvZunUrOp0OPz8/OnTowLBhw7jvvvsscq3r6du3L7feeit//fVXlft9fHzYvHkzM2bMYP78+ezZs4fNmzfj6+tLeHg4zz77bJVDta8MQFeHofJ+Q8XFxXV+i6zc9OnTadWqFd988w2rV6/G1dWVfv368e677zJz5sx6qYOltWvXjt27d/POO++wYsUKFi1ahKurKyNGjGDSpEl07dq10jFPP/00gYGBvPfee2zbtg07OztuvfVW3nvvPebPn1/ldcz9GRANT6vRgKoFRUdpebdNgw4LdE+uc4pag96gGo2G8ePH8+2339ZHnRpETk4Orq6uZGdnV2qWvVpRURGJiYmEhYVVOeJG1K8pU6bw2muv1etkhkIIISo7dPEEqmKclqF1SQka9zCKFLs6/cyszed3daQDtWjScnJy+Oyzz7Cxsan1LTIhhBCWpVEut/7roMmsXN/4266EqMLMmTNZv349f/31F6mpqTz//PPNem4rIYRoDCrPQq2DqntHNCrSMiSapPXr1zN79mzy8vJ4+umnee+99xq6SkII0explcttLHpFufk6UAvRmMyaNavJ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fKC6urqqO3bsqPX5s7OzVUDNzs6+btnCwkL10KFDamFhYa2vczM6efKkam9vrwKqs7OzOm7cOHXGjBnq7t27VZ1OV+1xvXv3VgE1MTGxwnZABdTWrVurqamppu2nTp1S3dzcVEA9ceKEabter1dbtmypAuq7775b4Vxff/216Xzjxo2rsO/NN99UAXXmzJkVtj/11FMqoN5///1qVlaWaXtOTo46aNAgFVCnT59eo+9NYmKiCqghISGV9hUWFqqhoaEqoM6YMUNVVVXdv3+/euDAgUplV6xYodrY2KgRERGqwWCosC8kJEQFVC8vryqPXbt2bZXv/0pV1fHYsWOqnZ2damVlpc6dO7fCPoPBoK5cuVItKioybRs3bpwKqGvXrq1Qtvx79txzz1Uon5aWpnbu3FkF1OXLl1dbt6rey+23366qqqqOHj1aVRRFTUpKMpXp27evamdnp2ZnZ6s//PBDle/9v//9rwqobdq0UdPS0kzbz507p0ZHR6uA+tlnn1U4ZsCAASqgPvLII2ppaalp+y+//KJqtVoVUHv37l3hmAULFqiA2rZtW/X48eMVvn9vvPGG6efsStX9XArRVJTodOqBiwfUAxcPqCcv7FcLT++p08/M2nx+V6fRtgxdzWAwVHt7BGDq1Km8++67rFy5ks6dO9djzarwZW/Iu9CwdagNJx94Yr3Zh4eHh7Ns2TIefvhhkpOTmT17tun2h5ubGw888AD/+te/8Pf3r9V5P/30U/z8/Eyvw8LCeOihh/j888/ZsGGDqY/LmjVrOHbsGFFRUZVGZk2YMIGZM2eyadOmGl3zwoULzJgxg6CgIGbOnIm9vb1pn7OzM9988w0hISFMnz6diRMn1ur9lCstLeXIkSNMmjSJpKQkPD09uffeewGq7UR95513cu+99zJ37lwOHDhQZblXXnmlygEG5vr4448pKipi4sSJlfreKIpSbQvVlfbu3cvvv/9Oly5d+Oijjyq0tPj6+vLVV1/RsWNHpk+fzoABA2pdx9GjRzN37lzmzZvHpEmTSElJYd26ddxzzz24uLhUe9ynn34KwEcffVShVcbf358PPviAYcOGMW3aNP72t78BcOrUKVasWIGLiwsfffQRVlaX/+scOnQoI0eO5Mcff6x0nXfffReAH374gcjISNP28tuUv/zyC4sWLSI9PR0vL69av38hGiMr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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for model_name, model in models.items():\n",
    "    time_solution = solutions[model_name][\"Time [s]\"].entries\n",
    "    time = np.linspace(time_solution[0], time_solution[-1], 100)\n",
    "    voltage = solutions[model_name][\"Voltage [V]\"](time)\n",
    "    plt.plot(time, voltage, lw=2, label=model.name)\n",
    "plt.xlabel(\"Time [s]\", fontsize=15)\n",
    "plt.ylabel(\"Voltage [V]\", fontsize=15)\n",
    "plt.legend(fontsize=15)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Alternatively the inbuilt `QuickPlot` functionality can be employed to compare a set of variables over the discharge. We must first create a list of the solutions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "list_of_solutions = list(solutions.values())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And then employ `QuickPlot`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d929804daac54666a9e0cd6ef289d0f4",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(FloatSlider(value=0.0, description='t', max=2439.9603669792164, step=24.399603669792164)…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "quick_plot = pybamm.QuickPlot(list_of_solutions)\n",
    "quick_plot.dynamic_plot();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Changing parameters"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Since we have made current an input, it is easy to change it and then perform the calculations again:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "581faed5a94c42f888b1c72efed7ae5a",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(FloatSlider(value=0.0, description='t', max=761.7524843226166, step=7.617524843226167), …"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# update parameter values and solve again\n",
    "# simulate for shorter time\n",
    "t_eval = np.linspace(0, 800, 300)\n",
    "for model_name, model in models.items():\n",
    "    solutions[model_name] = model.default_solver.solve(\n",
    "        model, t_eval, inputs={\"Current function [A]\": 3}\n",
    "    )\n",
    "\n",
    "# Plot\n",
    "list_of_solutions = list(solutions.values())\n",
    "quick_plot = pybamm.QuickPlot(list_of_solutions)\n",
    "quick_plot.dynamic_plot();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "By increasing the current we observe less agreement between the models, as expected. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## References\n",
    "\n",
    "The relevant papers for this notebook are:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1] Weilong Ai, Ludwig Kraft, Johannes Sturm, Andreas Jossen, and Billy Wu. Electrochemical thermal-mechanical modelling of stress inhomogeneity in lithium-ion pouch cells. Journal of The Electrochemical Society, 167(1):013512, 2019. doi:10.1149/2.0122001JES.\n",
      "[2] Joel A. E. Andersson, Joris Gillis, Greg Horn, James B. Rawlings, and Moritz Diehl. CasADi – A software framework for nonlinear optimization and optimal control. Mathematical Programming Computation, 11(1):1–36, 2019. doi:10.1007/s12532-018-0139-4.\n",
      "[3] Rutooj Deshpande, Mark Verbrugge, Yang-Tse Cheng, John Wang, and Ping Liu. Battery cycle life prediction with coupled chemical degradation and fatigue mechanics. Journal of the Electrochemical Society, 159(10):A1730, 2012. doi:10.1149/2.049210jes.\n",
      "[4] Marc Doyle, Thomas F. Fuller, and John Newman. Modeling of galvanostatic charge and discharge of the lithium/polymer/insertion cell. Journal of the Electrochemical society, 140(6):1526–1533, 1993. doi:10.1149/1.2221597.\n",
      "[5] Charles R. Harris, K. Jarrod Millman, Stéfan J. van der Walt, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith, and others. Array programming with NumPy. Nature, 585(7825):357–362, 2020. doi:10.1038/s41586-020-2649-2.\n",
      "[6] Scott G. Marquis, Valentin Sulzer, Robert Timms, Colin P. Please, and S. Jon Chapman. An asymptotic derivation of a single particle model with electrolyte. Journal of The Electrochemical Society, 166(15):A3693–A3706, 2019. doi:10.1149/2.0341915jes.\n",
      "[7] Valentin Sulzer, Scott G. Marquis, Robert Timms, Martin Robinson, and S. Jon Chapman. Python Battery Mathematical Modelling (PyBaMM). Journal of Open Research Software, 9(1):14, 2021. doi:10.5334/jors.309.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "pybamm.print_citations()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "env",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.15"
  },
  "vscode": {
   "interpreter": {
    "hash": "19e5ebaa8d5a3277b4deed2928f02ad0cad6c3ab0b2beced644d557f155bce64"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
